package com.ruoyi.produce.process.datacollection.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.sql.Timestamp;

/**
 * 生产数据采集，数据传输对象，面向前端需求
 * @author lsy 2020.8.16
 * 修改：
 */
@Data
@NoArgsConstructor
public class DataCollection {
    /**
     * 班次编号
     */
    @NotNull(message = "班次编号不能为空")
    @ApiModelProperty(value = "班次编号", required = true)
    private String shiftInfoId;

    /**
     * 机器编号
     */
    @NotNull(message = "机器编号不能为空")
    @ApiModelProperty(value = "机器编号", required = true)
    private String machineId;

    /**
     * 加工单编号
     */
    @NotNull(message = "加工单编号不能为空")
    @ApiModelProperty(value = "加工单编号", required = true)
    private String workSheetId;

    /**
     * 机器名称
     */
    @ApiModelProperty("机器名称")
    private String machineName;

    /**
     * 员工编号
     */
    @NotNull(message = "员工编号不能为空")
    @ApiModelProperty(value = "员工编号", required = true)
    private String staffId;

    /**
     * 员工名称
     */
    @ApiModelProperty("员工名称")
    private String staffName;

    /**
     * 关联自产生产加工单编号
     */
    @ApiModelProperty(value = "关联自产生产加工单编号")
    private String planSelfId;

    /**
     * 产品编号
     */
    @ApiModelProperty("产品编号")
    private String produceId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    @ApiModelProperty("产品名称")
    private String produceName;

    private int initialProduction; //初始产量
    private int updateProduction; //变化产量

    /**
     * 产品数量
     */
    @ApiModelProperty("产品数量")
    private int produceNumber;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp updateTime;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    public DataCollection(String shiftInfoId, String machineId, String workSheetId, String staffId, int initialProduction) {
        this.shiftInfoId = shiftInfoId;
        this.machineId = machineId;
        this.workSheetId = workSheetId;
        this.staffId = staffId;
        this.initialProduction = initialProduction;
    }
}
